Adaptive Expectations

Macroeconomics (M8674), March 2026


Vivaldo Mendes, ISCTE

vivaldo.mendes@iscte-iul.pt

1. Introduction

Why expectations in macroeconomics?


  • Economics is different:
    • contrary to physics, biology, and other subjects ...
    • in economics most decisions are based on the agents's expectations
  • Typical examples:
    • When a labor union negotiates a wage contract, it takes into account the expected inflation rate.
    • When we decide to buy a house, we take into account the expected future interest rates, income, and house prices.
    • When we decide to buy stocks, we take into account the expected future price of the stocks.

How do people formulate expectations?

  • In macroeconomics, the way people formulate expectations is one of the most:
    • Important issues.
    • Controversial issues.
  • In macroeconomics, there are two competing views to deal with the formulation of expectations:
    • Backward-looking (or adaptive) expectations
    • Forward looking (or rational) expectations
  • Now, we will discuss the first view.
  • Later, we will discuss the second view.

2. Mathematics required

Solution of a Geometric Series


  • Suppose we have a process that is written as:

  • It has two crucial elements:

    • First term of the series (when ):
    • Common ratio:
  • The solution is given by the expression:

3. Adaptive Expectations (AE): intuition

Simple Rules of Thumb


  • The world is extremely complex, don't try to be too clever.
  • Use a simple rule of thumb to forecast the future.
  • Extrapolate from what we have observed in in the past.
  • Try to correct the mistakes made in the past, by doing for example:


  • stands for decisions today; represents mistakes made in the past.
  • Typical rules of thumb are:
    • Follow the trend
    • Use moving averages
    • Use exponential smoothing
    • and others

4. The trend is your friend

Trend is your friend

"‘The trend is your friend’, as they say on the trading floor."

"What really is a trend? ... To a trader, a trend is a series of higher highs or lower lows."

James, Jessica. "Simple trend-following strategies in currency trading." Quantitative Finance, 3(4), 364-374, 2003. here

  • Jessica James is one the most successful traders in the Forex markets.
  • She was Vice President in CitiFX® Risk Advisory Group Investor Strategy, Citigroup in 2003 (when the remarks were published), and is now the Senior Quantitative Researcher in the Rates Research team at Commerzbank.

Jessica James on Commodity Trading Advisors (CTAs)


Follow the trend


  • A classical example of a trending strategy uses the following system to describe the evolution of inflation and inflation expectations over time:

where are parameters.

  • Inserting (2) into (1) we get:

  • If, for simplicity, we assume , we get:

Follow the trend (cont,)


  • Eq. (4) is a linear difference equation of second order with constant coefficients. Let's add a random shock to it:

  • Some immediate results can be figured out (ignore the random part for now):
    • If , then : inflation is stable
    • If , then : inflation is increasing
    • If , then : inflation is decreasing
    • If , and if : inflation will be increasing
    • If , and if : inflation will be decreasing

Create a new Pluto notebook from scratch

  • Start Julia and run Pluto
  • In the Pluto window click on the box Create a new notebook
  • A new window will open with an empty notebook
  • Save the new notebook:
    • Choose a folder on your computer to save the notebook
    • Add a notebook's name at the end of the Path (e.g.
      • \Desktop\M8674\Notebooks\Follow_the_Trend.jl
  • Click on Choose to save the notebook
  • The new notebook is ready to be used

Add some useful functionalities to the notebook


  • When you start a new notebook, it looks like an empty box
  • Add some packages:
    • Copy the code below and paste it into a new code cell
    • Run the cell: Shift + Enter or use the "Run" button
begin
	using PlutoUI, Dates, SparseArrays , StatsBase, PlutoPlotly, PlotlyKaleido
	using CSV ,  DataFrames, LinearAlgebra , TimeSeries, NLsolve, LaTeXStrings
	force_pluto_mathjax_local(true)
	PlotlyKaleido.start(;mathjax = true)
end
  • Add a Table of Contents: copy the code below to a new cell and run it
TableOfContents() 

More Pluto functionalities


  • The default width of the notebook is not very convenient for what we do:
    • Copy the code below and paste it into a new code cell
    • Run the cell: Shift + Enter or use the "Run" button
html"""
<style>
	@media screen {
		main {
			margin: 0 auto;
			max-width: 1600px;
    		padding-left: max(200px, 10%);
    		padding-right: max(383px, 10%);
            # 383px to accommodate TableOfContents(aside=true)
		}
	}
</style>
""" 

Final touch in the notebook


  • Add a title to the notebook:
    • open a new cell and turn it into a Markdown cell

      • Ctrl + M then Enter
    • use the # symbol to create title sections, and subsections:

      • # for the main title
      • ## for a subtitle
      • ### for a sub-subtitle
      • ...
    • Run the cell: Shift + Enter or use the "Run" button

    • Add your name, date, etc. using the same procedure in the notebook

Simulation: "Following the Trend" model


  • Our model is given by eq. (3)

  • The easiest way to simulate this equation is to use a for loop.

  • Consider the following baseline version:

    • Parameters: , ,
    • Iterations:
    • Initial conditions: and
    • Shock at :
  • The code is given next.

Simulation


  • Copy the code below, line by line, into a new cell, and run it
begin													
	n = 49  				# Number of iterations
	μ = 1.0         			# Parameter: μ value
	α = 1.0					# Parameter: α value
	ξ = 0.75 				# Parameter: ξ value
	π_1 = [ 2.0  2.0 ] 			# Setting the initial conditions (π₁=2.0, π₂=2.0)
	#l = length(π_1) 			# Not very useful in simple models
	ϵ = zeros(1 , n+1) 			# Defining the shocks, ϵ = zeros(l-1 , n+1) is an alternative
	ϵ[20] = 0.5 				# Inserting the only shock at t=20
	π = [π_1  zeros(1, n-1)] 		# Pre-allocating space; alternative is π = [π_1  zeros(l-1, n-1)]
	
	for t = 1 : n-1
		π[t+2] = μ * (α * π[t+1] + ξ * (π[t+1] - π[t]) + ϵ[t+2])      # the equation to be iterated
	end
end
  • Plot the results: copy the code below into a new cell and run it.
plot(π', mode = "markers+lines", line_width = 0.4)

5. Exponential smoothing

Exponential smoothing works for you


  • Exponential smoothing gives more weight to recent data than to old data.
    • Uses also a simple rule of thumb to forecast the future.
    • Extrapolates also from what we have observed in in the past.
  • A classical process that obeys exponential smoothing is given by:


  • stands for the price level; for the expected price level
  • The parameter gives the velocity with which agents correct past mistakes:
    • ; past mistakes slowly corrected
    • ; past mistakes quickly corrected

The two classical papers


  • Eq. (5) is the classical example of adaptive expectations
  • The two seminal papers are:

Cagan, Philip (1956). The Monetary Dynamics of Hyperinflation. In Studies in the Quantity Theory of Money, ed. Milton Friedman, 25-117, University of Chicago Press.

Friedman, Milton (1957). A Theory of the Consumption Function. Princeton University Press.

  • Cagan's paper is about money demand & hyperinflation (Germany, 1920s)
  • Friedman's paper is about the consumption function

A Solution to eq. (5)


  • Start with the eq. (5) above:

  • Isolate and get:

  • Iterate eq. (6) backward -times, and the solution will be given by: (Jump to Appendix A for the derivation):

  • To secure a stable solution in eq. (7a) we have to impose:

  • If we assume , the blue term above will converge to zero

  • And the stable solution will be:

  • Main message: expected price level depends on past price levels through an exponential smoothing process.

6. Limitations of Adaptive Expectations

Adaptive expectations: good points & bad points


  • The rules of thumb associated with AE seems to have some positive points:
    • They look like common sense rules (don't repeat the same mistakes of the past)
    • They are easy to apply: collect data on some previous observations and make some simple calculations
    • And they are widely used in practice: algorithmic trading
  • However, AE suffer from some serious drawbacks:
    • They are not logical: why should we use information only about the past? Why not information about what we expect that might happen in the future?
    • They can produce biased expectations: it leads to systematic mistakes
  • See next figures.

Example 1: Exponential smoothing & the price level



Consider a lag of 5 periods (quarters) and fast correction

Looks great?


No, it looks quite poor.

The error in the forecasting exercise is large and systematic.

Example 2: Exponential smoothing & inflation rate



Let's see what happens in the case of a stationary variable (inflation rate).


The vindication of Adaptive Expectations!

The mean of the mistakes is zero: !!

7. Stability: Predetermined (or backward-looking) variables

Predetermined (or backward-looking) variables


  • A process is called predetermined if its deterministic part depends only upon past observations:

  • Its dynamics will be expressed at the -th iteration by: (jump to Appendix B for details)

  • If stable solution
    If no stable solution
    If no solution

Predetermined variables: stable solution


  • By imposing the condition , eq. (9) will be written as:

  • Applying the formula for the sum of a geometric series, (9a) can be simplified as:

  • If there were no shocks in the past, the solution will correspond to the deterministic steady state of the original process:

8. Readings

  • There is no compulsory reading for this session. We hope that the slides and the notebook will be sufficient to provide a good grasp of the adaptive expectations approach in macroeconomics.
  • Many textbooks deal with this subject in a way that is not very useful for our course. They treat this subject in an elementary way or offer a very sophisticated presentation, usually extremely mathematical but short on content.
  • There is a textbook that feels quite good for our level:
    Patrick Minford and David Peel (2019). Advanced Macroeconomics: \beta Primer, Second Edition, Edward Elgar, Cheltenham.
  • Chapter 2 deals extensively with adaptive and rational expectations. However, this chapter is quite long (40 pages), making it more suitable to be used as complementary material rather than as compulsory reading. But it is by far the best treatment of this subject at this level.
  • Another excellent treatment of adaptive expectations can be found in the textbook:

    Ben J. Heijdra (2017). Foundations of Modern Macroeconomics. Third Edition, Oxford UP, Oxford.

    • Chapter 5 deal with this topic at great length (40 pages), but the subject is discussed at a relatively more advanced level than the one we follow in our course.
  • Another source of information is the book by:
    • George W. Evans and Seppo Honkapohja (2009). Learning and Expectations in Macroeconomics, Second Edition, Princeton UP, Princeton.
    • Chapter 1 (Expectations and the learning approach) deals with this topic at an elementary level, because their idea is to focus on what they call "learning".

Appendix A

A step-by-step derivation of equation (7) in the next slides

Jump back to eq. (5)

Solution: backward iteration


  • We will solve the following equation by backward iteration:

  • Like this, when :

  • The strategy is as follows:

    • Iterate up to the 3rd iteration: see a pattern at this iteration
    • Then, generalize to the th iteration

Let's start: 1st iteration

1st iteration: t t-1

Going 1 period backward

1st iteration: t t-1

back 1 period

Get the result in the 2nd iteration

1st iteration: t t-1

back 1 period

2nd iteration: t-1 t-2

Simplify the result in the 2nd iteration

1st iteration: t t-1

back 1 period

2nd iteration: t-1 t-2

Going 2 periods backward

1st iteration: t t-1

back 1 period

2nd iteration: t-1 t-2

Get the result in the 3rd iteration

1st iteration: t t-1

back 1 period

2nd iteration: t-1 t-2

3rd iter.: t-2 t-3

Simplify the result in the 3rd iteration


1st iteration: t t-1

back 1 period

2nd iteration: t-1 t-2

3rd iter.: t-2 t-3

Generalize to the -th iteration

  • In the previous slide, we iterated backwards 3 times.

  • The result was:

  • Now, it is easy to see that if we iterate -times backward, instead of 3, we will get:

Jump back to eq. (5)

Appendix B

Students are advised to read this slide carefully.

A step-by-step derivation of equation (9) in the following slides

Jump back to eq. (9)

Solution: backward iteration


  • We will solve the following equation by backward iteration:

  • Like this, when :

  • The strategy is as follows:

    • Iterate up to the 3rd iteration: see a pattern at this iteration
    • Then, generalize to the th iteration

Let us start: 1st iteration

1st iteration:

Going 1 period back in time

1st iteration:

going back 1 period

Let's get the result in the 2nd iteration

1st iteration:

going back 1 period

Simplify the result in the 2nd iteration

1st iteration:

going back 1 period

2nd iteration:

Going 2 periods back in time

1st iteration:

going back 1 period

2nd iteration:

going back 2 periods

Let's get the result in the 3rd iteration

1st iteration:

going back 1 period

2nd iteration:

going back 2 periods


Simplify the result in the 3rd iteration


1st iteration:

going back 1 period

2nd iteration:

going back 2 periods

Generalize to the -th iteration

  • In the previous slide, we iterated backwards 3 times.

  • The result was:

  • Now, it is easy to see that if we iterate -times, instead of 3, we will get:

Back to eq. (9)